「Snowflakeをもっと使いこなそう! Advent Calendar 2022」で執筆した記事まとめ #SnowflakeDB
※本エントリは、Snowflakeをもっと使いこなそう! Advent Calendar 2022の25日目の記事となります。
さがらです。
私が1人で取り組んできたアドベントカレンダー、Snowflakeをもっと使いこなそう! Advent Calendar 2022に関するまとめ記事となります。
Snowflakeをもっと使いこなそう! Advent Calendar 2022とは
クラスメソッドの1社員である私さがらが、Snowflakeに関する機能を色々試してみた記事を投稿するアドベントカレンダーでした。
大きく、以下の7つに分類される記事を書きました。
- Snowflake Marketplace
- ロール・権限周り
- 行レベル・列レベルセキュリティ
- アカウント管理者向け
- 2022年の新機能
- ドキュメントをパッと見ただけではわからない系
- サードパーティ製品との組み合わせ
書いた記事の振り返り
このまとめ記事を除き、24本Snowflakeに関する記事を書いてきました。どんな記事を書いたのか振り返りながらまとめていきたいと思います。
Snowflake Marketplace
Snowflake Marketplace上で、日本企業が提供しており、かつ申請してすぐに試せそうなデータを試してみました。
元々、ウェザーニューズ社やtruestar社などは先駆者としてMarketplace上でデータを公開していたのですが、今年は東芝テック社、インテージ社、Tangerine社、xMAP社、エム・データ社、メディカル・データ・ビジョン社、QUICK社、などがデータを公開しており、日本でのMarketplaceの活用も活性化してきている印象です!
- 12/2 Snowflake Marketplace上で東芝テック社が提供するPOSデータのサンプルを試してみた
- 12/3 Snowflake Marketplace上でインテージ社が提供する商品マスタと店舗マスタのサンプルを試してみた
- 12/4 Snowflake Marketplace上でxMap社が提供する日本のレストランデータのサンプルを試してみた
- 12/5 Snowflake Marketplace上でM Data社が提供する日本のテレビ番組とテレビ広告に関するメタデータのサンプルを試してみた
- 12/6 Snowflake Marketplace上でtruestar社が提供するPrepper Open Data Bank - Japanese Calendar Dataを試してみた
- 12/7 Snowflake Marketplace上でtruestar社が提供するPrepper Open Data Bank - Japanese Street Dataを試してみた
ロール・権限周り
Snowflakeを本番運用していく際には切っても切り離せない「ロール・権限」周りについても記事を執筆しました。
特に私が執筆した中だと「Managed Access Schema」は多くの組織の運用に当てはまりやすい機能だと思いますので、ぜひ記事を見た上で検討して頂けると嬉しいです!
- 12/8 Snowflakeで付与されている権限を知りたいときに使うSHOW GRANTSコマンドを一通り試してみた
- 12/10 スキーマの所有者だけが権限管理可能となる「Managed Access Schema」を試してみた
- 12/11 Snowflakeで付与された権限を他のロールにも付与できる「WITH GRANT OPTION」を試してみた
- 12/19 あるロールを削除した時そのロールが所有していたオブジェクトの所有者はどうなるのか確かめてみた
行レベル・列レベルセキュリティ
Snowflakeでの行レベル・列レベルセキュリティを実現する、「Masking Policy」と「Row Access Policy」を試してみました。
特に今年は「Tag-based Masking Policies」も一般提供されたため、よりSnowflakeでの行レベル・列レベルセキュリティが使いやすくなった印象ですね!
- 12/12 Snowflakeの「Masking Policy」と「Row Access Policy」を試してみた
- 12/14 Snowflakeでタグを介してマスキングポリシーを付与できる「Tag-based Masking Policies」を試してみた
アカウント管理者向け
Snowflakeのアカウント管理者レベルの人が使うであろう機能も試してみました。
アカウント全体のクレジット使用状況やMFAの有効状況など、使いどころは多いと思う内容を試していますので、ぜひご一読頂けると幸いです。
- 12/17 Snowflakeのアカウント全体のクレジット使用状況を確認できるACCOUNT_USAGEのview2種類を試してみた
- 12/18 SnowflakeでMFAが無効なユーザー一覧を出してみた
2022年の新機能
2022年にリリースされた新機能も試してみました。
特に、本日時点(2022年12月25日)ではパブリックプレビューではありますが、データを自動分類してくれるClassification、一時的にリソースを増強してくれるQuery Acceleration、と言った機能はSnowflakeの運用負荷を更に下げてくれる機能だと思っていますので、一般提供が待ち遠しいですね!
- 12/9 0除算でもNULL除算でも0を返すSnowflakeの除算関数「DIV0NULL」を試してみた
- 12/13 Snowflakeにログインする際のパスワード周りに任意の制約をかけることができる「Custom Password Policy」を試してみた
- 12/15 Classificationを用いて個人情報を持つカラムを自動分類・自動タグ付けをしてみた
- 12/16 指定したウェアハウスでリソースが足りない時に一時的にリソースを増強してくれる「Query Acceleration」を試してみた
ドキュメントをパッと見ただけではわからない系
私がドキュメントを少し見ただけではわからなかった機能も試しております。
実際に試してみて、UNDROPはタグ付けも復元してくれることがわかり、LISTAGG関数も使いどころが多そうだなと感じています。
- 12/1 SnowflakeのタグをUNDROPするとオブジェクトへのタグ付けも復元するか確かめてみた
- 12/20 複数行の文字列データを指定したカラムの値ごとに1行に集約できるLISTAGG関数を試してみた
サードパーティ製品との組み合わせ
Looker、dbt、Coalesce、これらの製品それぞれとSnowflakeを組み合わせたときにできることについても記事を執筆しています。
Lookerとdbtについては使う場面がありそうなユースケースを元にした機能を検証し、Coalesceについては以前から気になっていた製品なのでこの機会に試してみました!
- 12/21 Looker上で動的にSnowflakeのロールを切り替えてDynamic Data Maskingを適用させてみた
- 12/22 Snowflakeでステージングしたファイルをdbt経由でロードしてみた
- 12/23 Snowflake上でのデータ変換処理の開発をGUIベースで行える「Coalesce」のQuickStartGuideを試してみた
- 12/24 Snowflake上でのデータ変換処理の開発をGUIベースで行えるCoalesceとGitHub上のリモートリポジトリを連携してみた
1人アドベントカレンダーを完走してみて
実施の背景
実は、2021年も1人アドベントカレンダーに取り組んでいたので、2022年はいいかな~と2022年10月頃は感じていましたw
しかし、
- 資格試験の勉強を通して気になったところや、今年リリースされた機能を自分でちゃんと試せていなかった
- Snowflake Data Supeheroesに任命されている以上もっと頑張らないとな、という思いもあった
というところで、2022年11月に決起して、1人アドベントカレンダーに向けてブログ執筆を始めました。
実施後の感想
まず一言、2021年よりは楽に取り組めましたw
なぜかというと、2021年の取り組みは11月時点で「2本」しかブログストックが、2022年11月時点で「11本」ブログストックを作ることが出来たからです。
ただ、以下のような反省もあります。
- Coalesceは申請する所からブログを書こうと思っていたが、申請したらすぐに利用できるサービスではなく、検証をしたい時に出来なかった(ただ、申請後2時間でアカウント情報を頂いたので、Coalesceの担当者の方の対応は非常に迅速でした)
- 2021年より自分の業務が広くなっていることや案件対応もあり、2021年よりも業務に追われることが多くて、12月はブログを思うように書けないときもあった
そのため、もし、2023年も取り組むならば11月末までにもっとストックを貯めておかないといけないな~と強く感じましたね。
あとは、改めて自分で試してアウトプットすることの重要性を強く感じました!ドキュメントや海外の方のブログを見ることでも得られるものはありますが、自分で一度最初から試すことで実装の具体的なイメージが湧き、私が主に行っているコンサルティング・トレーニング・プリセールスの際にも頭の中で実装イメージを持ちながら話すことが出来るので、より良い対応が出来ることに繋がると感じています。
嬉しかったこと
まず、私の1人アドベントカレンダーを読んでくださり、励ましの言葉を頂けたことが本当に嬉しかったです!!
また、昨年に続きSnowflake社の本橋さん(@mmotohas)には毎日私の記事をシェア頂いておりました。いつもありがとうございます!
最後に
Snowflakeをもっと使いこなそう! Advent Calendar 2022にて執筆した記事のまとめと、感想を記しました。
執筆した記事のうち、1つでも参考になる記事があると嬉しいです!!